home *** CD-ROM | disk | FTP | other *** search
/ AmigActive 10 / AACD 10.iso / AACD / Programming / AmigaTalk / Intuition / Border.st < prev    next >
Text File  |  2000-05-03  |  4KB  |  138 lines

  1. "--------------------------------------------------"
  2. " Border Class implements control of Amiga Borders."
  3. " The method to actually display the Border is in  "
  4. " the Window Classes.                              "
  5. "--------------------------------------------------"
  6.  
  7. Class Border :Glyph
  8.   leftEdge topEdge frontPen backPen drawMode count nextBorderName name
  9. !
  10. [
  11.    remove
  12.       <primitive 187 0 name>
  13. |
  14.    registerTo: windowTitle
  15.       <primitive 187 5 windowTitle name>
  16. |
  17.    setStartPoint: sPoint " Set the LeftEdge & TopEdge parameters: "
  18.       leftEdge <- sPoint x.
  19.       topEdge  <- sPoint y.
  20.       <primitive 187 3 0 leftEdge name>.
  21.       <primitive 187 3 1 topEdge  name>
  22. |
  23.    getStartPoint
  24.       leftEdge <- <primitive 187 2 0 name>.
  25.       topEdge  <- <primitive 187 2 1 name>.
  26.       ^ leftEdge @ topEdge
  27. |
  28.    getBorderPens
  29.       frontPen <- <primitive 187 2 2 name>.
  30.       backPen  <- <primitive 187 2 3 name>.
  31.       ^ frontPen @ backPen
  32. |
  33.    setBorderPens: newPensPoint ! fp bp !
  34.       fp <- newPensPoint x.
  35.       bp <- newPensPoint y.
  36.       <primitive 187 3 2 fp name>.
  37.       <primitive 187 3 3 bp name>.
  38.       frontPen <- fp.
  39.       backPen  <- bp
  40. |
  41.    getDrawMode
  42.       drawMode <- <primitive 187 2 4 name>.
  43.       ^ drawMode
  44. |
  45.    setDrawMode: newDrawMode
  46.       <primitive 187 3 4 newDrawMode name>.
  47.       drawMode <- newDrawMode
  48. |
  49.    getCount
  50.       count <- <primitive 187 2 5 name>.
  51.       ^ count
  52. |
  53.    setCount: newCount
  54.       <primitive 187 3 5 newCount name>.
  55.       count <- newCount
  56. |
  57.    getNextBorderName
  58.       nextBorderName <- <primitive 187 2 6 name>.
  59.       ^ nextBorderName
  60. |
  61.    setNextBorderName: newBorder
  62.       <primitive 187 3 6 newBorder name>.
  63.       nextBorderName <- newBorder
  64. |
  65.    setBorderPoint: thePt to: newPoint
  66.       <primitive 187 4 thePt (newPoint x) (newPoint y) name>
  67. |
  68.    new: borderName
  69.       <primitive 187 1 2 borderName>.
  70.       name           <- borderName.
  71.       nextBorderName <- nil.
  72.       leftEdge       <- 0.
  73.       topEdge        <- 0.
  74.       frontPen       <- 1.
  75.       backPen        <- 0.
  76.       drawMode       <- 1.
  77.       count          <- 2.
  78.       ^ self
  79. ]
  80.  
  81. "---------------------------------------------------------------------"
  82. " Line Class relies on Class Border to implement a lot of its methods."
  83. "---------------------------------------------------------------------"
  84.  
  85. Class Line :Border
  86. [
  87.   makeLine: lineName from: fPoint to: tPoint
  88.     super            new:       lineName.
  89.     super setBorderPoint: 1 to: fPoint.
  90.     super setBorderPoint: 2 to: tPoint.
  91.  
  92.     ^ self
  93. ]
  94.  
  95. "---------------------------------------------------"
  96. " Triangle Class relies on Class Border to implement"
  97. " a lot of its methods.                             "
  98. "---------------------------------------------------"
  99.  
  100. Class Triangle :Border
  101. [
  102.   makeTriangle: triangleName vert1: v1Point vert2: v2Point vert3: v3Point
  103.     super            new: triangleName.
  104.     super       setCount: 4.
  105.     super setBorderPoint: 1 to: v1Point.
  106.     super setBorderPoint: 2 to: v2Point.
  107.     super setBorderPoint: 3 to: v3Point.
  108.     super setBorderPoint: 4 to: v1Point.
  109.  
  110.     ^ self
  111. ]
  112.  
  113. "----------------------------------------------------"
  114. " Rectangle Class relies on Class Border to implement"
  115. " a lot of its methods.                              "
  116. "----------------------------------------------------"
  117.  
  118. Class Rectangle :Border
  119. [
  120.   makeRectangle: rectangleName from: fPoint to: tPoint ! x1 y1 x2 y2 !
  121.     x1 <- fPoint x.
  122.     y1 <- fPoint y.
  123.     x2 <- tPoint x.
  124.     y2 <- tPoint y.
  125.  
  126.     super      new: rectangleName.
  127.     super setCount: 5.
  128.         
  129.     super setBorderPoint: 1 to: x1 @ y1.
  130.     super setBorderPoint: 2 to: x2 @ y1.
  131.     super setBorderPoint: 3 to: x2 @ y2.
  132.     super setBorderPoint: 4 to: x1 @ y2.
  133.     super setBorderPoint: 5 to: x1 @ y1.
  134.  
  135.     ^ self    
  136. ]
  137.